Application programs running under the control of a system program often are associated with defined program modules called exits. The system program calls (invokes) these exits to pass information about events, system or otherwise, to the application programs. A typical use might be to pass system error information to an application program. Another example might be to pass network link status information to an application program whose task it is to monitor and manage a communications network.
Because of changes to parameters associated with the exit modules or to the modules themselves, customers often have the need to reload the exit modules. The process of modifying an exit module requires the changes to be implemented into a source module and this new module to be compiled and loaded into the system. However, if currently active, the existing exit module must first be inactivated before the new module can be loaded. Present methods of inactivation require one of the following: shutting down the entire system program or inactivating the exit without first determining if an invocation to the exit is active or pending.
The first prior art method of reloading an exit module requires the orderly shutdown of the system program. This results in complete loss of the system function for the period of time for which the system program is not running. This is often not acceptable to customers, even for short periods of time, because of the disruption to the system. For example, in the case of telecommunications access control software, such as VTAM software, (VTAM is a trademark of the IBM Company), shutdown means shutdown of the communications function of an entire network. Obviously, this is very undesirable. The second method allows for the inactivation of a specific exit without terminating the system program, but does not take into consideration the possibility that the exit module may be presently executing or that one or more invocations may be pending (queued). In this situation, an application program could receive corrupted information when an inactive exit is invoked, or possibly terminate abnormally, again with potentially serious consequences. Other problems may also occur when an invocation occurs to an exit that is no longer present.
Other prior art, the Job Entry System for example, a software product marketed by the IBM Company, provides a way for an exit to be manually activated or inactivated from a control console. However, even in this art, no technique is provided to determine if an exit is being invoked or if an invocation is pending before inactivating it. To merely inactivate an exit in such a system may cause problems similar to those already mentioned. Thus, in the known prior art, there is no way to safely inactivate an exit, for reloading or otherwise, other than by halting the operation of the system program in an orderly way.